home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d20
/
qnode.arc
/
QNODE.DOC
< prev
next >
Wrap
Text File
|
1991-04-02
|
14KB
|
284 lines
QNODE
=====
QNode has been designed as the fastest nodelist compiler for an Opus 1.10+
system. Others may in fact be faster, I'm not sure about that, but that
doesn't affect what it was originally designed for. It was written for my
system configuration, so anything I wanted it to do, I made it do. Anything
which exists in other nodelist compilers does not necessarily exist in this
one.
This program consists of QNODE.EXE and QDIFF.EXE. For a list of the
errorlevels that either program will produce, run the program with a parameter
of '/?' (ie: QNODE /?)
QNode will always use the file 'QNODE.CFG' as it's input file, will always
search and find the latest 'NODELIST.###' file (time-stamps are used, so end
of year wrap isn't a problem.) and will always generate the two files:
'NODELIST.DAT' and 'NODELIST.IDX'. It can also optionally generate the file:
'FIDOUSER.LST', memory permitting.
This program is really for the grunt Opus 1.10 sysop you doesn't really care
about doing anything other than getting a working nodelist.
The config file is a free format text file, consisting of a keyword, followed
by optional parameters. You may use a semi-colon (;) on any line to start a
comment. Anything from the semi-colon to the end of the line will be
cheerfully ignored. The file is totally case insensitive. It is described at
the end of this document.
QNode will only compile as much of the nodelist as you require. Therefore,
if you only use zone 1, then the instant that it hits zone 2, it will stop
compiling the nodelist. This can save a great deal of time in the compile,
but it also throws the nodelist report at the end out by the extra zone
hub that it includes. This is nothing to be concerned about.
The errorlevels which can be returned by QNODE are:
0: Nodelist compile fine.
1: No Nodelist found.
2: Cannot open config file: QNODE.CFG
3: Cannot open nodelist.
4: Errors exist in the config file.
QDIFF
=====
QDiff is also fast, and will check for disk space and bad CRCs.
QDiff will go through your NODELIST.### files, find the most recent one (end
of year wrap is handled nicely), and then will go through your NODEDIFF.###
files to find the most recent of them. If there are no NODEDIFF.### files,
then it will do a second search for NODEDIFF.A##, NODEDIFF.Z##, NODEDIFF.L##.
If the nodediff file number is not equal to the nodelist file number, then
things will start happening.
If QDiff is only given a NODEDIFF.A## (arced) or NODEDIFF.Z## (zipped), or
NODEDIFF.L## (lharced) then it will kindly extract the real nodediff, process
it, and then delete the extracted nodediff. The new nodediff will NOT be
deleted if you run out of drive space while processing the nodediff however.
Choices for extractors include (in order): for NODEDIFF.A##:
PKUNPAK, PKXARC, ARCE, PAK
for NODEDIFF.Z##:
PKUNZIP, PAK
for NODEDIFF.L##:
LHA, LHARC
While running, QDiff requires enough drive space to create an entire nodelist.
Once the new one has been created (under the name QDIFF$.TMP), it will be
renamed to the proper name of NODELIST.###. This is just in case things get
interrupted, such that you aren't playing with a partial nodelist.
QDiff takes no command line parameters, other than the /? to display the valid
errorlevels.
The errorlevels which can be returned by QDIFF are:
0: .DIFF file applied normally
1: Nodelist does not require updating
2: Cannot find nodediff
3: Cannot find nodelist
4: Cannot find extraction program
5: Nodediff wasn't there after extraction
6: Error during extraction
7: Disk error during writing, probably disk full
8: CRC error in new nodelist
QNODE.CFG
=========
Here is a list of valid commands, and usages for the QNODE.CFG file:
; *** STUFF ABOUT YOUR SYSTEM ***
ZONE # ; This sets YOUR zone number
NET # ; This sets YOUR net number
NODE # ; This sets YOUR node number, and is totally ignored.
COUNTRY # ; This sets your countries telephone direct dial code.
(In Canada and the US, this will be '1')
USERLIST ; This asks for FIDOUSER.LST to be generated.
; WARNING: If you do not have sufficient memory to load
; the whole thing into memory, you will not get the whole
; thing. I have not put sort on disk routines into it yet,
; so you will only get what it can fit into memory.
BUFFERS # ; This sets the node buffer size. It can be anywhere from
; 1 to 511, and defaults to 511. The only use I can see for
; this is to give yourself more memory for the userlist.
; (If you don't have enought memory for the buffers
; themselves, it will default to a lower number of nodes.
MAXBAUD # {[FLAG #] ...}
; This sets your systems maximum baud rate. Any entires above
; the baud rate will be set to that baud rate. However, any
; nodes which have the flag specified will be changed to the
; listed baudrate. In multiple matches, the last one rules.
; (My 2400/MNP5 uses: MAXBAUD 2400 HST 9600 MNP 9600 V42 9600)
; *** QUICK OUTPUT LIST TYPES ***
; (Note: These may be specified on the command line, if desired)
ONEZONE ; Asks for only nodes in your zone. (ie: ZONE:*/*)
REGULAR ; Asks for only your zone, plus hub nodes from other zones.
; (ie: ZONE:*/* + *:*/0)
ALLZONES ; Asks for a complete nodelist (ie: *:*/*)
NOZONES ; Asks for NO nodes whatsoever to be included
; *** NODELIST GENERATION MODIFIERS ***
ADD {[nodeid] ...}
DELETE {[nodeid] ...}
; These two functions are used to change the list generated
; by the quick output list types.
; The [nodeid] statements may be any of these style of
; numbers:
; ZONE: ; Asks for the entire zone
; ZONE:REGION ; Asks for the entire region
; ZONE:NET ; Asks for the entire net
; REGION ; Asks for a region in your own zone
; NET ; Asks for a net in your own zone
; -ZONE: ; Asks for admin node for the zone
; ZONE:-REGION ; Asks for admin nodes from specified region
;
; These commands are processed in the order they are
; encountered. You may have as many add and delete lines as
; you like, in any order. In cases of multiple matches, the
; first applicable match will rule.
NETLIST filename
; This will include the specified file at the end of your
; own net. This is used to add people who 'just missed' the
; weeks nodediff.
ZONELIST filename
; This will include the specified file at the end of your
; own zone. This is used to include your pointnet.
INCLUDE filename
; This will include the specified file into the QNODE.CFG
; parsing pass. I personally use this to include my dial and
; cost tables, which are used by every nodelist processor.
; *** BULK NODE MODIFICATIONS ***
; (Actually, these don't need to change numbers into script files,
; but that's the only use I can see. Inventive people will probably
; come up with other uses.)
SCRIPT minbaud maxbaud cost fromdial todial
; This is one form of the script command, which I invented to
; handle my 2400 baud/MNP 5 modem. In this case, every node
; which has a baud rate between (or equal to) the minbaud and
; the maxbaud, with a cost equal to the cost, will have the
; listed dial substitution done to it. (If the start of the
; phone number doesn't match the fromdial, that node is not
; changed.)
; On my system, I use:
; SCRIPT 300 2400 0 1- "NOMNP1.SCR" ; Local Calls
; SCRIPT 300 2400 25 1- "NOMNP2.SCR" ; No Areacode calls
; SCRIPT 300 2400 50 1- "NOMNP3.SCR" ; Long Distance calls
; You could add another set of entries for other countries
; too, but I don't call international yet, so haven't required
; it.
; *** DIAL/COST TABLES ***
; In the dial table, there are two parameters after the dial
; keyword. the first is the modifications to local calls (ones
; within your own country code), and the second is the
; modifications to the international direct dial phone numbers
; (ones with any other country code.) Each of these
; entries consists of what to put before the phone number, as
; well as what to put after the phone number. To seperate the
; two, use a slash (/). For no change to the phone number,
; use a slash by itself. You should use the keyword 'End' to
; terminate the dial and cost tables.
; The dial table will replace every phone number that starts
; with the first sequence with the second sequence. This is
; for local or regional calls where you aren't allowed to dial
; the entire phone number.
; An example follows:
DIAL / 011- ; Add 011- to international calls
; The following set up local calls from Saskatoon, SK
1-306-242- 242-
1-306-244- 244-
1-306-373- 373-
1-306-374- 374-
1-306-382- 382-
1-306-384- 384-
1-306-652- 652-
1-306-654- 654-
1-306-664- 664-
1-306-665- 665-
1-306-931- 931-
1-306-933- 933-
1-306-934- 934-
1-306-955- 955-
1-306-966- 966-
1-306-978- 978-
1-306-329- 329-
1-306- 1- ;area code strip for Saskatchewan calls
END
; The COST statement at the head of the table can take two
; arguments, which are the default costs in pennies to apply to
; domestic and international calls, respectively.
; Each entry in the cost table consists of a partial phone
; number followed by a cost in pennies for sending a message
; to any node whose phone number begins with that string. As
; with the dialing table, the first matching entry is the one
; that is used. The cost table is used before the dial table
; is used, so you should always use the fully expanded phone
; numbers, instead of the simplified phone numbers which the
; dial table would generate
; An example follows:
COST 50 250 ; Give a cost of 50 cents to long
; distance nodes, and $2.50 international
; The following numbers are free from Saskatoon, SK
1-306-242- 00
1-306-244- 00
1-306-373- 00
1-306-374- 00
1-306-382- 00
1-306-384- 00
1-306-652- 00
1-306-654- 00
1-306-664- 00
1-306-665- 00
1-306-931- 00
1-306-933- 00
1-306-934- 00
1-306-955- 00
1-306-966- 00
1-306-978- 00
1-306-329- 00
1-306- 25 ; short distance calls, cheaper rates
1-800- 00
1-900- 50
END
; *** INDIVIDUAL NODE MODIFICATIONS ***
BAUD [zone:][net/]node baudrate
; Sets the specified nodes baudrate to whatever you specify.
FLAGS [zone:][net/]node flaglist
; Adds the specified flags to the node. (Normally 'CM')
PHONE [zone:][net/]node phonenumber
; Sets the specified nodes phone number
; (Unless the node number is unlisted, you may want to see
; if you can use the SCRIPT command instead, which doesn't
; have to be changed if the person ever changes their phone
; number.)
PASSWORD [zone:][net/]node password
; Sets the specified nodes password. No embedded blanks
; are allowed in these passwords.
SCRIPT [zone:]net/node fromdial todial
; This is the second form of the script command. Please note
; that the net number IS required, even if it's your own net.
; (I use the '/' to determine the difference between the two
; script lines.)
; For instance:
; SCRIPT 140/88 1- "VORTEX.SCR" ; Needs a special script.
; (This is less error prone than sticking his phone number
; into a dial substitution line.)